package org.finir.fakturisanje.business.service;

import java.util.List;

import org.finir.fakturisanje.persistence.Faktura;
import org.finir.fakturisanje.persistence.Komitent;
import org.finir.fakturisanje.persistence.Preduzece;
import org.finir.fakturisanje.persistence.Usluga;

public interface KontrolerAL {

	public abstract LogovanjePreduzeca getLogovanjePreduzeca();

	public abstract void setLogovanjePreduzeca(
			LogovanjePreduzeca logovanjePreduzeca);

	public abstract SacuvajEntitet getSacuvajEntitet();

	public abstract void setSacuvajEntitet(SacuvajEntitet sacuvajEntitet);

	public abstract IzmeniEntitet getIzmeniEntitet();

	public abstract void setIzmeniEntitet(IzmeniEntitet izmeniEntitet);

	public abstract ObrisiEntitet getObrisiEntitet();

	public abstract void setObrisiEntitet(ObrisiEntitet obrisiEntitet);

	public abstract VratiListuEntiteta getVratiListuEntiteta();

	public abstract void setVratiListuEntiteta(
			VratiListuEntiteta vratiListuEntiteta);

	public abstract VratiListuFaktura getVratiListuFaktura();

	public abstract void setVratiListuFaktura(
			VratiListuFaktura vratiListuFaktura);

	public abstract VratiListuKomitenata getVratiListuKomitenata();

	public abstract void setVratiListuKomitenata(
			VratiListuKomitenata vratiListuKomitenata);

	public abstract VratiListuUsluga getVratiListuUsluga();

	public abstract void setVratiListuUsluga(VratiListuUsluga vratiListuUsluga);

	public abstract void sacuvajEntitet(Object entitet);

	public abstract void izmeniEntet(Object entitet);

	public abstract void obrisiEntitet(Object entitet);

	public abstract List<Usluga> vratiListuUsluga(Preduzece preduzece);

	public abstract List<Komitent> vratiListuKomitenata(Preduzece preduzece);

	public abstract List<Faktura> vratiListuFaktura(Integer year,
			Preduzece preduzece);

	public abstract Preduzece logovanjePreduzeca(Preduzece preduzece);

	public Object spojObjekat(Object object);

	public Integer vratiNoviBrojFakture(Integer year, Preduzece preduzece);

	public <T> List<T> vratiListuEntiteta(Class<T> tipEntiteta);

	public void odstampajFakturu(Faktura f);
}